From e747ec3ea02dd01e9ffa9e398e24e6939a5b738c Mon Sep 17 00:00:00 2001 From: Sebastien Castiel Date: Wed, 6 Dec 2023 17:47:41 -0500 Subject: Tabs --- src/app/groups/[groupId]/expenses/page.tsx | 114 +++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 src/app/groups/[groupId]/expenses/page.tsx (limited to 'src/app/groups/[groupId]/expenses') diff --git a/src/app/groups/[groupId]/expenses/page.tsx b/src/app/groups/[groupId]/expenses/page.tsx new file mode 100644 index 0000000..2eb98ab --- /dev/null +++ b/src/app/groups/[groupId]/expenses/page.tsx @@ -0,0 +1,114 @@ +import { Badge } from '@/components/ui/badge' +import { Button } from '@/components/ui/button' +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from '@/components/ui/card' +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from '@/components/ui/table' +import { getGroup, getGroupExpenses } from '@/lib/api' +import { ChevronRight, Plus } from 'lucide-react' +import Link from 'next/link' +import { notFound } from 'next/navigation' + +export default async function GroupExpensesPage({ + params: { groupId }, +}: { + params: { groupId: string } +}) { + const group = await getGroup(groupId) + if (!group) notFound() + + const expenses = await getGroupExpenses(groupId) + + return ( + +
+ + Expenses + + Here are the expenses that you created for your group. + + + + + +
+ + + {expenses.length > 0 ? ( + + + + Title + Paid by + Paid for + Amount + + + + + {expenses.map((expense) => ( + + {expense.title} + + + { + group.participants.find( + (p) => p.id === expense.paidById, + )?.name + } + + + + {expense.paidFor.map((paidFor, index) => ( + + { + group.participants.find( + (p) => p.id === paidFor.participantId, + )?.name + } + + ))} + + + {group.currency} {expense.amount.toFixed(2)} + + + + + + ))} + +
+ ) : ( +
Your group doesn’t have any expense yet.
+ )} +
+
+ ) +} -- cgit v1.3